/******************************************************************************* 
 *  Copyright 2007 Amazon Technologies, Inc.  
 *  Licensed under the Apache License, Version 2.0 (the "License"); 
 *  
 *  You may not use this file except in compliance with the License. 
 *  You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
 *  This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
 *  CONDITIONS OF ANY KIND, either express or implied. See the License for the 
 *  specific language governing permissions and limitations under the License.
 * ***************************************************************************** 
 *    __  _    _  ___ 
 *   (  )( \/\/ )/ __)
 *   /__\ \    / \__ \
 *  (_)(_) \/\/  (___/
 * 
 *  Amazon ECS CSharp Library
 *  API Version: 2007-07-16
 *  Generated: Thu Aug 02 10:15:38 PDT 2007 
 * 
 */

using System;
using System.Xml.Serialization;
using System.Collections.Generic;
using System.Text;


namespace Amazon.ECS
{

    public sealed class AmazonECSLocale
    {
        private AmazonECSConfig config;
        private static Encoding LATIN1 = Encoding.GetEncoding("ISO-8859-1");
        private static Encoding UTF8 = Encoding.UTF8;

        private AmazonECSLocale(AmazonECSConfig config)
        {
            this.config = config;
        }

        public static AmazonECSLocale US
        {
            get
            {
                return new AmazonECSLocale(new AmazonECSConfig()
                            .WithServiceURL("http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService")
                            .WithInputEncoding(LATIN1));
            }
        }

        public static AmazonECSLocale UK
        {
            get
            {
                return new AmazonECSLocale(new AmazonECSConfig()
                            .WithServiceURL("http://ecs.amazonaws.co.uk/onca/xml?Service=AWSECommerceService")
                            .WithInputEncoding(LATIN1));

            }
        }

        public static AmazonECSLocale DE
        {
            get
            {
                return new AmazonECSLocale(new AmazonECSConfig()
                            .WithServiceURL("http://ecs.amazonaws.de/onca/xml?Service=AWSECommerceService")
                            .WithInputEncoding(LATIN1));
            }
        }


        public static AmazonECSLocale FR
        {
            get
            {
                return new AmazonECSLocale(new AmazonECSConfig()
                            .WithServiceURL("http://ecs.amazonaws.fr/onca/xml?Service=AWSECommerceService")
                            .WithInputEncoding(LATIN1));
            }
        }

        public static AmazonECSLocale JP
        {
            get
            {
                return new AmazonECSLocale(new AmazonECSConfig()
                       .WithServiceURL("http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService")
                       .WithInputEncoding(UTF8));
            }
        }

        public static AmazonECSLocale CA
        {
            get
            {
                return new AmazonECSLocale(new AmazonECSConfig()
                        .WithServiceURL("http://ecs.amazonaws.ca/onca/xml?Service=AWSECommerceService")
                        .WithInputEncoding(LATIN1));
            }
        }

        public AmazonECSConfig Config
        {
            get { return this.config; }
        }
    }

}
